Digital signal processing is an important aspect of many electronic systems including acoustics, speech processing, seismology, and other fields. Digital signal processing concerns the manipulation of signals which are represented by sequences of numbers. Often the manipulations of the numerical sequences are extremely complex.
Digital signal processor integrated circuits have been designed to provide the functionality necessary to perform signal processing algorithms. The digital signal processors are similar to a microprocessor in that they execute a program stored in an associated memory. Typically, however, the digital signal processors address a limited memory space and do not have virtual memory capabilities. Therefore, in order to run a large program, the digital signal processor must be placed in an idle state while a portion of the program is loaded into its local memory and a reset signal is supplied at which time the digital signal processor resumes processing. The idle/download/reset procedure is also followed in order to modify a program stored in the DSP's local memory.
This method of altering the program in the DSP's memory has several problems. First, there is a loss of real time response as the microprocessor is idled and new data is downloaded into its memory. Furthermore, the reset of the DSP may cause the DSP to lose register values, and hence, they must be stored in a context memory and reloaded prior to resetting the DSP, which requires additional time. Further, in some DSPs, the reset button will result in a self-test being performed.
Therefore, a need has arisen for a digital signal processor method and apparatus which allows a program associated with a digital signal processor to be change without idling and resetting the processor.